﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Services;
using System.Text;

public partial class Avaliador_AvaliadorArtigo : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //if (Session["Usuario"] == null || Session["TipoUsuario"] == null || Request.QueryString["i"] == null)
        //    Response.Redirect("../Logoff.aspx");
        //else
        //{
        //    Artigo artigo = Artigo.findArtigoById(new Guid(Request.QueryString["i"]));
        //    Guid idEvento = artigo.idEvento;
        //    Usuario usuario = (Usuario)Session["Usuario"];
        //    Guid idPessoa = usuario.Pessoa.id;
        //    if (Avaliador.existAvaliadorByEventoPessoa(idEvento, idPessoa))
        //    {
        //        Avaliador avaliador = Avaliador.findAvaliadorByEventoPessoa(idEvento, idPessoa);
        //        if (!AvaliacaoArtigo.existByAvaliadorArtigo(avaliador.id, artigo.id))
        //            Response.Redirect("../Logoff.aspx");
        //    }
        //}

        //if (Request.QueryString["i"] != null)
        //    if (!Artigo.existeArtigoById(Request.QueryString["i"]))
        //        Response.Redirect("../Login.aspx");
        //if (Session["TipoUsuario"].ToString() != "Avaliador")
        //    Response.Redirect("../Default.aspx");
        if (Session["Usuario"] == null || Session["TipoUsuario"] == null)
            Response.Redirect("../Login.aspx");
        if (Session["TipoUsuario"].ToString() != "Avaliador")
            Response.Redirect("../Default.aspx");
    }
    [WebMethod]
    public static List<Quesito> getQuesitos(string idArtigo)
    {
        Guid idEvento = Artigo.getArtigoById(new Guid(idArtigo)).idEvento;
        if (Evento.existQuesito(idEvento))
            return Evento.findQuesitosByIdEvento(idEvento);
        else
            return new List<Quesito>();
    }
    [WebMethod]
    public static Artigo getArtigo(string idArtigo)
    {
        return Artigo.getArtigoById(new Guid(idArtigo));
    }
    [WebMethod]
    public static bool Avaliado(string idArtigo)
    {
        Artigo artigo = Artigo.getArtigoById(new Guid(idArtigo));
        Avaliador avaliador = Avaliador.findAvaliadorByEventoPessoa(artigo.idEvento, ((Usuario)System.Web.HttpContext.Current.Session["Usuario"]).Pessoa.id);
        return AvaliacaoArtigo.findAvaliacaoArtigobuIdArtigoIdAvaliador(avaliador.id, artigo.id).avaliado;
    }
    [WebMethod]
    public static bool notaComentario(string idArtigo, float nota, string comentario)
    {
        bool retorno = false;
        Artigo artigo = Artigo.getArtigoById(new Guid(idArtigo));
        Avaliador avaliador = Avaliador.findAvaliadorByEventoPessoa(artigo.idEvento, ((Usuario)System.Web.HttpContext.Current.Session["Usuario"]).Pessoa.id);
        Guid idAvaliacaoArtigo = AvaliacaoArtigo.getIdAvaliacaoArtigoByIdAvaliadorIdArtigo(avaliador.id, artigo.id);
        if (AvaliacaoArtigo.changeNotaComentario(idAvaliacaoArtigo, nota.ToString(), comentario))
            retorno = AvaliacaoArtigo.changeAvaliado(idAvaliacaoArtigo);
        return retorno;
    }
    [WebMethod]
    public static bool avaliarQuesito(float nota, string comentario, string idArtigo, string idQuesito)
    {
        QuesitoAvaliacaoArtigo qaa = new QuesitoAvaliacaoArtigo();
        Artigo artigo = Artigo.getArtigoById(new Guid(idArtigo));
        Avaliador avaliador = Avaliador.findAvaliadorByEventoPessoa(artigo.idEvento, ((Usuario)System.Web.HttpContext.Current.Session["Usuario"]).Pessoa.id);
        qaa.comentarioQuesito = comentario;
        qaa.id = Guid.NewGuid();
        qaa.idAvaliacaoArtigo = AvaliacaoArtigo.getIdAvaliacaoArtigoByIdAvaliadorIdArtigo(avaliador.id, artigo.id);
        qaa.idQuesito = new Guid(idQuesito);
        qaa.nota = nota;
        return QuesitoAvaliacaoArtigo.createQuesitoAvaliacaoArtigo(qaa);
    }
}